Cálculo de Venda - Resposta
Versão 01
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
float valorCompra;
int codigo;
valorCompra = lerValorFloat(teclado, "Digite o valor da compra: ");
exibirMenuPagamento();
codigo = lerValorInteiro(teclado,"Digite a opção de pagamento: ");
System.out.println();
switch (codigo) {
case 1: calcPagVista(valorCompra); break;
case 2: calcPagCreditoDesconto(valorCompra); break;
case 3: calcPag2xSemJuros(valorCompra); break;
case 4: calcPag4xComJuros(valorCompra); break;
default: System.out.println("Código inválido."); break;
}
teclado.close();
}
static void calcPagVista(Float valor){
// À vista, 8% de desconto
float valorFinal = valor * ((100 - 8) / 100f);
System.out.println("À vista, com 8% de desconto.");
System.out.printf("Valor final: R$ %.2f%n", valorFinal);
}
static void calcPagCreditoDesconto(float valorCompra){
// À vista no cartão, 4% de desconto
float valorFinal = valorCompra * ((100 - 4) / 100f);
System.out.println("À vista no cartão, com 4% de desconto.");
System.out.printf("Valor final: R$ %.2f%n", valorFinal);
}
static void calcPag2xSemJuros(float valorCompra){
// Em 2x, sem juros
float valorFinal = valorCompra;
System.out.println("Em 2x, preço normal sem juros.");
System.out.printf("Cada parcela: R$ %.2f%n", valorFinal / 2);
}
static void calcPag4xComJuros(float valorCompra){
// Em 4x, com acréscimo de 8%
float valorFinal = valorCompra * ((100 + 8) / 100f);
System.out.println("Em 4x, preço acrescido de 8%.");
System.out.printf("Cada parcela: R$ %.2f%n", valorFinal / 4);
}
static void exibirMenuPagamento(){
System.out.println("\n====================================");
System.out.println(" FORMAS DE PAGAMENTO");
System.out.println("====================================");
System.out.println("1 - À vista, com 8% de desconto");
System.out.println("2 - À vista no cartão, com 4% de desconto");
System.out.println("3 - Em 2x, preço normal sem juros");
System.out.println("4 - Em 4x, preço acrescido de 8%\n");
}
static int lerValorInteiro(Scanner teclado, String mensagem){
int valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextInt();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
static float lerValorFloat(Scanner teclado, String mensagem){
float valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextFloat();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
static double lerValorDouble(Scanner teclado, String mensagem){
double valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextDouble();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
}
Versão 02: Nesta versão, o processamento das opções de venda foi movido para um procedimento.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
float valorCompra;
int codigo;
valorCompra = lerValorFloat(teclado, "Digite o valor da compra: ");
exibirMenuPagamento();
codigo = lerValorInteiro(teclado,"Digite a opção de pagamento: ");
System.out.println();
processarPagamento(codigo, valorCompra);
teclado.close();
}
static void calcPagVista(Float valor){
// À vista, 8% de desconto
float valorFinal = valor * ((100 - 8) / 100f);
System.out.println("À vista, com 8% de desconto.");
System.out.printf("Valor final: R$ %.2f%n", valorFinal);
}
static void calcPagCreditoDesconto(float valorCompra){
// À vista no cartão, 4% de desconto
float valorFinal = valorCompra * ((100 - 4) / 100f);
System.out.println("À vista no cartão, com 4% de desconto.");
System.out.printf("Valor final: R$ %.2f%n", valorFinal);
}
static void calcPag2xSemJuros(float valorCompra){
// Em 2x, sem juros
float valorFinal = valorCompra;
System.out.println("Em 2x, preço normal sem juros.");
System.out.printf("Cada parcela: R$ %.2f%n", valorFinal / 2);
}
static void calcPag4xComJuros(float valorCompra){
// Em 4x, com acréscimo de 8%
float valorFinal = valorCompra * ((100 + 8) / 100f);
System.out.println("Em 4x, preço acrescido de 8%.");
System.out.printf("Cada parcela: R$ %.2f%n", valorFinal / 4);
}
static void exibirMenuPagamento(){
System.out.println("\n====================================");
System.out.println(" FORMAS DE PAGAMENTO");
System.out.println("====================================");
System.out.println("1 - À vista, com 8% de desconto");
System.out.println("2 - À vista no cartão, com 4% de desconto");
System.out.println("3 - Em 2x, preço normal sem juros");
System.out.println("4 - Em 4x, preço acrescido de 8%\n");
}
static int lerValorInteiro(Scanner teclado, String mensagem){
int valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextInt();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
static float lerValorFloat(Scanner teclado, String mensagem){
float valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextFloat();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
static double lerValorDouble(Scanner teclado, String mensagem){
double valor = 0;
try {
System.out.print(mensagem);
valor = teclado.nextDouble();
} catch (Exception e) {
System.out.println("Valor digitado é incorreto.");
}
return valor;
}
static void processarPagamento(int codigo, float valorCompra){
switch (codigo) {
case 1: calcPagVista(valorCompra); break;
case 2: calcPagCreditoDesconto(valorCompra); break;
case 3: calcPag2xSemJuros(valorCompra); break;
case 4: calcPag4xComJuros(valorCompra); break;
default: System.out.println("Código inválido."); break;
}
}
}
sdf